#ifndef __ERROR_CODE_H
#define __ERROR_CODE_H

#include <stdint.h>


// 系统错误定义 (system)
#define SYS_ERR_NONE           0x00000000  // 无错误
#define SYS_ERR_INIT          (1 << 0)     // 初始化失败
#define SYS_ERR_MEMORY        (1 << 1)     // 内存错误
#define SYS_ERR_QUEUE         (1 << 2)     // 队列错误
#define SYS_ERR_TASK          (1 << 3)     // 任务错误
#define SYS_ERR_TIMEOUT       (1 << 4)     // 超时错误
#define SYS_ERR_PARAM         (1 << 5)     // 参数错误
#define SYS_ERR_STATE         (1 << 6)     // 状态错误
#define SYS_ERR_CONFIG        (1 << 7)     // 配置错误
#define SYS_ERR_FLASH         (1 << 8)     // flash错误

// 电机错误定义 (motor)
#define MTR_ERR_NONE          0x00000000   // 无错误
#define MTR_ERR_COMM          (1 << 0)     // 通信错误
#define MTR_ERR_TIMEOUT       (1 << 1)     // 超时错误
#define MTR_ERR_OVERLOAD      (1 << 2)     // 过载
#define MTR_ERR_POSITION      (1 << 3)     // 位置错误
#define MTR_ERR_SPEED         (1 << 4)     // 速度错误
#define MTR_ERR_CURRENT       (1 << 5)     // 电流错误
#define MTR_ERR_TEMP         (1 << 6)     // 温度错误
#define MTR_ERR_VOLTAGE      (1 << 7)     // 电压错误
#define MTR_ERR_LIMIT        (1 << 8)     // 限位错误
#define MTR_ERR_ENCODER      (1 << 9)     // 编码器错误

// 通信错误定义 (comm)
#define COMM_ERR_NONE         0x00000000   // 无错误
#define COMM_ERR_UART1       (1 << 0)     // UART1错误
#define COMM_ERR_UART2       (1 << 1)     // UART2错误
#define COMM_ERR_SPI         (1 << 2)     // SPI错误
#define COMM_ERR_W5500       (1 << 3)     // W5500错误
#define COMM_ERR_MODBUS      (1 << 4)     // Modbus错误
#define COMM_ERR_PROTOCOL    (1 << 5)     // 协议错误
#define COMM_ERR_ADDR        (1 << 6)     // 其他错误c
#define COMM_ERR_TIMEOUT     (1 << 7)     // 通信超时
#define COMM_ERR_CRC         (1 << 8)     // CRC错误
#define COMM_ERR_BUFFER      (1 << 9)     // 缓冲区错误





// 函数声明

#endif // __ERROR_CODE_H